This invention relates generally to fast data retrieval. More particularly, this invention relates to mapping call detail data provided in an unstructured or difficult-to-search form into at least two databases. A portion of the total data available is stored in a first database that is indexed for quick data retrieval. The total data is stored in a second database that is distinct from the first database, in that the second database does not require explicit indices.
Immediate access to data is increasingly more important and complex. For example, consumers are demanding immediate information about their accounts with companies. In addition, companies are demanding more specific information about consumers to classify the consumers and target information to them, to discover consumer trends, to detect consumer fraud, etc. Thus, it is becoming more important to have methods and apparatus for retrieving specific data quickly.
Raw data is often difficult to retrieve in a quick manner, especially when the raw data is large. In some cases, it is important to have quick access to only a portion of the total raw data, for example, that portion of the total raw data that may be more relevant for a particular purpose. In other cases, it is useful to retrieve the total raw data. The raw data as it is used herein is intended to include all types of data including, without limitation, text, alphanumeric characters, photographs, pictures, other graphics, audio and/or visual data that is collected in an unstructured form, an unindexed form, a difficult-to-search form, bulky form, a form not easily integrated into a standard database management system, or the like.
An example of raw data is Automated Message Accounting (AMA) data, which is often used by telecommunications companies. AMA data includes a variety of call usage information, including, for example, originating number, terminating number, connect date and time, elapsed time of call, etc. The AMA data also includes additional data fields that further describe the call, such as the trunks used, various status indications about the call, the operator used, and the carriers used (for example, wireless carriers, local exchange carriers, and long distance carriers). AMA data comes in a variety of different formats, i.e., having different structure codes, often with appended modules that include additional information.
For more detailed information about AMA data, see Billing Automated Message Accounting Format (BAF) Generic Requirements, Document No. GR-1100, Issue No. 04, Issue Date December 1999; and Generic Requirements for Exchange Access Automatic Message Accounting (AMA), FSD 20-25-0000, Document No. GR-1083, Issue No. 03, Issue Date November 2000, both available from Telcordia Technologies.
Given the large number of telephone calls made, and the large amount of data associated with each call, the total raw data can be quite voluminous. With the AMA data being so large, it is expensive or inefficient to store all the AMA data in such a manner as to provide for quick retrieval.
In some cases, only a portion of the total AMA data is important to a customer, company, analyst, etc. For example, some data is important for billing, determining user fraud, detecting calling patterns, and predicting future use, but not other data. However, it is sometimes necessary to retrieve all of the AMA data, for example, to resolve problems in the network. Thus, there is a need to quickly retrieve a portion of each AMA data record and also a need to retrieve the associated complete AMA data record.
The present invention overcomes the above and other problems by disclosing a cost-effective and versatile solution for the storage and quick retrieval of a portion of the total raw data as well as the storage and retrieval of the total raw data. The present invention enables the raw data to be stored in a highly compressed form, thus reducing the memory space needed to store raw data. In addition, in one implementation, the invention discloses a system and method of retrieving data in seconds, even for large amounts of data.
More specifically, the present invention discloses a method of storing and quickly retrieving call detail data. The method comprises mapping a portion of the call detail data into an interpreted usage event (IUE), wherein the IUE includes a fixed number of fields, each field having a fixed format. At least some of the fields store characteristics of the call detail data. The method further comprises storing the IUE in a first database and storing the original call detail data in a record in a second database. The IUE in the first database corresponds to the record in the second database. The method further comprises querying the first database with a first query to identify the IUE with one or more of the characteristics of the call detail data, and retrieving from the first database the IUE responsive to the first query. The retrieving of the IUE is executed in a quick manner based on characteristics of the first database. For example, one or more of the fields may be indexed to enable quick IUE retrieval.
The method further comprises querying the second database with a second query by entering characteristics from the retrieved IUE, and retrieving the record from the second database responsive to the second query. The retrieving of the IUE from the first database is executed more quickly than the retrieving of the record from the second database based on the characteristics of the first database in comparison to characteristics of the second database.